package com.cskaoyan._11polymorphic._03advantages;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/10 15:06
 **/
/*
// 没有多态时：
角色1引用.技能();
角色2引用.技能();
角色3引用.技能();
角色4引用.技能();
// 有了多态后：
角色父类引用.技能();
 */
public class Demo {
    public static void main(String[] args) {
        // 不使用多态
        //GaiLun gaiLun = new GaiLun();
        //gaiLun.fight();
        //
        //TiMo tiMo = new TiMo();
        //tiMo.fight();
        //
        //EZ ez = new EZ();
        //ez.fight();

        // 使用多态
        Hero hero;
        hero = new GaiLun();
        hero.fight();

        hero = new TiMo();
        hero.fight();

        hero = new EZ();
        hero.fight();
    }
}

class Hero{
    public void fight() {
        System.out.println("释放技能");
    }
}

class GaiLun extends Hero{

    @Override
    public void fight() {
        System.out.println("沉默");
    }
}

class TiMo extends Hero{
    @Override
    public void fight() {
        System.out.println("种蘑菇");
    }
}

class EZ extends Hero{

    @Override
    public void fight() {
        System.out.println("精准弹幕!");
    }
}